package uiMain.menuconsola;

import gestorHotel.Hotel;
import gestorHotel.habitacion.Habitacion;
import gestorHotel.habitacion.TipoEstadoHabitacion;
import gestorHotel.reserva.*;

import java.util.ArrayList;
import java.util.Scanner;

public class OpcionDeMenuEliminarReserva extends OpcionDeMenu {

	public void ejecutar() {
		Scanner in = new Scanner(System.in);
		String h = seleccionarHotel();
		
		Hotel hotel = Main.hoteles.get(h);
		
		System.out.print("Ingrese el código de la reserva: ");
		int codReserva = Integer.parseInt(in.nextLine());
		
		int dias = 3; // CAMBIAR
		ArrayList<PenalizacionCancelacion> penalizaciones = hotel.getPenalizaciones();
		PenalizacionCancelacion penalizacion = null;
		for (PenalizacionCancelacion p : penalizaciones)
			if (dias >= p.getAntesDe()) {
				penalizacion = p;
				break;
			}
		for (Reserva reserva : hotel.getReservas().values()) {
			if (reserva.getCodReserva() == codReserva) {
				
				System.out.println("El costo de penalización es: " + penalizacion.getCoste());
				
				if (confirmarAccion()) {
					Main.hoteles.get(h).getReservas().get(codReserva).setEstado(TipoEstadoReserva.CANCELADA);
					for (LineaReserva linea : reserva.getLineas()) {
						int numHab = linea.getHabitacion();
						Main.hoteles.get(h).getHabitaciones().get(numHab).setEstado(TipoEstadoHabitacion.LIBRE);
					}
				}
				break;
			}
		}
	}

	public String getDescripcion() {
		return "Cancelar reserva.";
	}

}
